package microcredit.gui.handler;

import java.awt.Component;
import java.util.List;

import microcredit.gui.editor.IPrintable;
import microcredit.gui.editor.IRefreshable;
import microcredit.gui.editor.ISaveable;
import microcredit.gui.selector.IChooseable;
import microcredit.gui.selector.IConvertable;
import microcredit.gui.selector.IDeletable;
import microcredit.gui.selector.IFilter;
import microcredit.gui.selector.IFilterable;
import microcredit.gui.selector.ILoadable;
import microcredit.gui.selector.INewable;
import microcredit.gui.selector.IOpenable;
import microcredit.gui.selector.ISelectable;

public abstract class AbstractHandler<E> 
	implements IDeletable<E>, INewable<E>, IOpenable<E>, ILoadable<E> 
		, IRefreshable<E>, ISaveable<E>, IConvertable<E>, ISelectable<E>, 
		IChooseable<E>
		, IFilterable<E>, IPrintable<E>{
	
	@Override
	public List<IFilter<E>> getFilters() {
		return null;
	}
	
	public void print(E e) throws Throwable {};
	
	@Override
	public void choose() throws Throwable {
	}
	
	@Override
	public void delete(E e) throws Throwable {
		
	}
	
	@Override
	public List<E> select(List<E> entity) {
		return null;
	}
	public String toString(E element) {
		return element.toString();
	};

	@Override
	public E newEntity(Component parent) throws Throwable {
		return null;
	}

	@Override
	public E open(Component component, E e) throws Throwable {
		return null;
	}

	@Override
	public List<E> load() throws Throwable {
		return null;
	}
	
	public E refresh(E element) throws Throwable {
		return element;
	};
	
	public E save(E entity) throws Throwable {return null;};

}
